package com.prj.ufdm.auth.bpo;

import java.util.List;

import com.prj.ufdm.auth.model.SysUser;
import com.prj.ufdm.core.bpo.BaseBPO;

/**  
 * 系统用户接口 
 * @author 胡义振  
 * @date 2018年3月26日  
*/
public interface SysUserBPO  extends BaseBPO<SysUser> {

	/** 
	 * 描述: 根据用户名获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param username
	 * @return 
	 */
	public SysUser doGetSysUserByUsername(String username) throws Exception;
	
	/** 
	 * 描述: 根据TOKEN获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param token
	 * @return 
	 */
	public SysUser doGetSysUserByToken(String token) throws Exception;
	
	
	/** 
	 * 描述: 根据用户名、密码获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param 
	 *     username 
	 *     password
	 * @return 
	 */
	public SysUser  doGetSysUserByUserNameAndPassword(String username,String password) throws Exception;
	

	/** 
	 * 描述: 检测登录名是否存在
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param username
	 * @return 
	 */
	public boolean doCheckSysUserLoginNameExist(String username,String userId) throws Exception;
	
	
 	/**
 	 * 描述: 通过角色ID查询该角色下的用户
 	 * @auther 胡义振
 	 * @date 2018-03-22
 	 * @param roleId  角色ID
 	 * @return
 	 */
     public List<SysUser> doGetSysUserListWithRoleId(SysUser sysUser) throws Exception;
     
 	/**
 	 * 根据用户ID删除系统用户
 	 * @param id 要删除的角色ID（多个ID，逗号分隔）
 	 * @return
 	 * @throws Exception
 	 * @author 胡义振  
 	 * @date 2018年3月27日
 	 */
 	public Integer doRmSysUserById(String userIds) throws Exception;
 	
	/**
	 * 在用户中添加角色
	 * @param 
	 *      userId      用户ID
	 *      roleIds     角色ID（多个用","号分隔）
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	public Integer doAddSysUserRole(String userId,String roleIds) throws Exception;
	
	/**
	 * 删除用户中的角色
	 * @param 
	 *      userId      用户ID
	 *      roleIds     角色ID（多个用","号分隔）
	 * @return
	 * @author 胡义振  
	 * @date 2018年3月26日
	 */
	public Integer doRmSysUserRole(String userId,String roleIds) throws Exception;
	
}
